import { ViteDevServer } from 'vite';
import * as fs from 'fs';
import * as path from 'path';

/** 是否为生产环境 */
export const isProd = process.env.NODE_ENV === 'production';
/** 当前进程运行的目录 */
export const cwd = process.cwd();

/**
 * 根据环境加载服务端入口模块
 * @param vite vite 开发服务器
 */
export async function loadSsrEntryModule(vite: ViteDevServer | null) {
  if (isProd) {
    // 生产环境：使用 require 加载打包好的模块
    const entryPath = path.join(cwd, 'dist/server/entry-server.js');
    return require(entryPath);
  } else {
    // 开发环境：使用 vite 开发服务器加载模块
    const entryPath = path.join(cwd, 'src/entry-server.tsx');
    return vite!.ssrLoadModule(entryPath);
  }
}

/**
 * 根据环境获取 index.html 的路径
 */
export function resolveTemplatePath() {
  return isProd
    ? path.join(cwd, 'dist/client/index.html')
    : path.join(cwd, 'index.html');
}

/**
 * 判断 url 是否为根路径
 */
export function matchPageUrl(url: string) {
  if (url === '/') {
    return true;
  }

  return false;
}
